NAPOMENE:
- sva resenja su data kao NetBeans projekti - mozete koristiti i Eclipse
- da bi projekti mogli da koriste Neuroph, morate postaviti referencu na biblioteku neuroph-core.jar (dat je u ovom paketu)
- da bi primeri mogli da ucitaju dataset, najjednostavnije je staviti ih u osnovni direktorijum samog projekta i u tom slucaju nije potrebno
 navoditi punu putanju do fajla vec sam onaziv fajla (kao u datim resenjima)


ZADATAK 1.

Napraviti neuronsku mrezu u Java-i koristeći Neuroph frejmvork koji rešava problem preporuke kontaktnih sociva. Na osnovu 
karakteristika klijenta, neuronska mreza treba da daje preporuku da li klijent treba da nosi tvrda ili meka sociva, ili mu ne preporucuje sociva.
Karakteristike klijenta su starost, dijagnoza, astigmatiam i vlaznost ociju.
Skup podataka za obucavanje neuronske mreze dat je u prilozenom fajlu lenses_data.txt , ima 9 ulaza i 3 izlaza.
* Napisati program koji izvršava trening skupa neuronskih mreža tipa viseslojni perceptron sa backpropagation algoritmom za ucenje.
pri cemu varira njihove parametre i to: broj skrivenih neurona - od 10 do 20, i koeficijent ucenja (learning rate) 0.1-0.9.
Ograniciti broj iteracija treninga mreze na 20000, a maksimalnu gresku na 0.01.
Tokom treninga ispisivati podatke o srednjoj kvadratnoj gresci. 
* Nakon treninga svih mreza izracunati i ispisati srednju vrednost ukupne greske i srednju vrednost broja iteracija za sve treninge.
* Utvrditi koje neuronske mreze su imale najmanju gresku i najmanji broj iteracija treninga, i testirati ih sa celokupnim skupom podataka.
Testiranje podrazumeva propustanje celog skupa podataka kroz neuronsku mrezu, i ispisivanje izlaza neuronske mreze.

-------------------------------------------------------------------------------------------------------------------------------------------

ZADATAK 2.

Napisati Java program koristeći Neuroph frejmvork koji trenira neuronsku mrezu koja resava problem klasifikacije vina.
Skup podataka o vinima je dat u prilozenom fajlu wine_classification_data.txt , ima 13 ulaza i 3 izlaza. 
Ulazi predstavljaju karakteristike vina, a izlazi su vrste vina.
Koristiti neuronsku mrezu tipa viseslojni perceptron sa 10 skrivenih neurona i backpropagation algoritam za ucenje.
Postaviti maksimalnu gresku na 0.01, a maksimalni broj iteracija na 20000. Trening ponoviti vise puta i to redom sa
trening setom od 50, 60, 70, 80 procenata od celokupnog skupa podataka, a testirati sa ostatkom.
Testiranje podrazumeva propustanje celog skupa test podataka kroz neuronsku mrezu, i ispisivanje izlaza neuronske mreze.
Tokom treninga ispisivati vrednost greske za svaku iteraciju.

-------------------------------------------------------------------------------------------------------------------------------------------

ZADATAK 3.

Napisati Java program koristeći Neuroph frejmvork koji trenira neuronsku mrezu za broblem ravnoteznog polozaja.
Skup podataka je dat u prilozenom fajlu balance_scale_data.txt i ima 20 ulaza i 3 izlaza.
Program treba paralelno da trenira 10 neuronskih mreza, svaku u posebnom thread-u i na kraju da je sacuva u fajl.
Nakon izvrsenog treninga ispisati podatke o svakom treningu: koliko je iteracija trajao i kolika je 
ukupna srednja kvadratna greska na kraju treninga.









